package com.itxx.examination3;

import java.io.*;
import java.net.Socket;
import java.util.Scanner;

//需求：编写客户端和服务器端程序，客户端用于上传图片，服务器端用于接收文件，文件上传成功后，给客户端一个反馈：文件上传成功。
//
//注意：
//
//服务器端采用多线程实现，并且要解决文件名冲突问题。
//
//客户端控制台内容
public class ExaminationCilent {
    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        String path;
        while (true) {
            //要传输的文件的地址
            System.out.println("请输入上传的文件的路径");
            //要传输的文件的地址
            path = sc.nextLine();

            File file = new File(path);
            if (file.isFile()) {
                break;
            } else {
                System.out.println("请输入正确的图片文件路径名,请重新输入");
                continue;
            }
        }
        for (int i = 0; i < 20; i++) {
            getLoad( path);
        }
    }

    private static void getLoad( String path) throws IOException {
        Socket socket = new Socket("127.0.0.1", 45433);
        //创缓冲字节
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path));
        BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
        int len;
        byte[] bytes = new byte[1024];
        while ((len = bis.read(bytes)) != -1) {
            bos.write(bytes, 0, len);
            bos.flush();
        }
        socket.shutdownOutput();
        //接受服务端反馈
        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String s = br.readLine();
        System.out.println("这是服务器端反馈的数据:" + s);
        bis.close();
    }
}
